# レッスン 5: カスタムの nCloth アトリビュート プリセットを使用して中解像度メッシュをシミュレートする

レッスン 3 と 4 のワークフローを使用して、低解像度の nCloth メッシュをリアルに修正できました。今度はこれを使用してシミュレーション用に nCloth ズボンとシャツの中解像度バージョンをすばやく準備します。

このレッスンでは、以下の操作を行います。

- Shirt_LowRes オブジェクトと Pants_LowRes オブジェクトの nCloth アトリビュートを カスタムの nCloth プリセットとして保存します。
- スケーリングのリレーション(Scaling Relation)アトリビュートを変更し、nCloth のシミュレート済みメッシュに与える影響を確認します。

## レッスンの設定

1. nCloth の高度なテクニックのレッスン データをダウンロードしていない場合は、http://www.autodesk.co.jp/maya-advancedtechniques からダウンロードします。その後、nClothAdvancedTutorials ディレクトリを Maya プロジェクトとして設定します。

   このレッスンでは、レッスンのシーン ファイルに加えて、Maya ジオメトリのキャッシュ ファイルにアクセスする必要があります。

2. Character_MedRes.mb という名前のシーン ファイルを開きます。

   このファイルは、Maya プロジェクトとして設定した nClothAdvancedTutorials ディレクトリ内にあります。

   中解像度のシャツとズボンのメッシュはすでに nCloth オブジェクトに変換されており、nCloth_Shirt_MedResShape と nCloth_Pants_MedResShape という名前が付けられています。

   ズボンにはポイント対サーフェス(Point to Surface)コンストレイントが適用されており、キャラクタのウエストにコンストレイントされています。中解像度のシャツとズボンはすでに、ラップ デフォーマを使用して、複製された新しい高解像度のシャツとズボンのメッシュでラップされています。低解像度のシャツとズボン、nCloth シャツと nCloth ズボンのオブジェクトは、キャッシュされて中解像度メッシュの横に参照用に配置されます。

3. 低解像度と中解像度のキャラクタの胴体と靴をアニメートするジオメトリ キャッシュを読み込みます。詳細については、ジオメトリ キャッシュを読み込むするを参照してください。

## nCloth アトリビュートをカスタム プリセットとして保存する

レッスン 3 と 4 を完了し、キャラクタのシャツとズボンの最適化されたシミュレーションが生成されました。この nCloth オブジェクトの動作を実行させるアトリビュート値を得るまでに多数の手順を踏んでいるため、この最適化されたアトリビュート値を保存しておくことをお勧めします。

Maya アトリビュート プリセットを使用して、低解像度 nCloth シャツ(nCloth_ShirtShape)と nCloth ズボン(nCloth_PantsShape)オブジェクトのアトリビュート値をカスタムの nCloth プリセットとして保存できます。これで新しい nCloth プリセットを、中解像度のシャツとズボンなど、他のバージョンのメッシュに適用できるようになりました。このワークフローにより、オリジナルのオブジェクトに似たトポロジを持つジオメトリを使用して、他のシミュレーションをすばやく準備することができます。

nCloth シャツ オブジェクトのアトリビュートをカスタムの nCloth プリセットとして保存するには

1. シーン ビューで、低解像度の nCloth シャツを選択します。
2. アトリビュート エディタ(Attribute Editor)で、nCloth_ShirtShape タブをクリックします。
3. プリセット(Presets)ボタンをクリックして押したままにします。

   nCloth アトリビュート プリセット(Presets) ポップアップ メニューが表示されます。

4. nCloth プリセットの保存(Save nCloth Preset)を選択します。

   アトリビュート プリセットの保存(Save Attribute Preset)ウィンドウが表示されます。

5. プリセット名(Preset name)フィールドで、作成するカスタム アトリビュート プリセットの名前として nCloth_ShirtShape と入力し、アトリビュート プリセットの保存(Save Attribute Preset)をクリックします。
6. 手順 1 から 5 までを繰り返して、nCloth ズボンをカスタムの nCloth アトリビュート プリセット nCloth_PantsShape として保存します。

低解像度の nCloth のシャツとズボンは不要になったため、nucleus ソルバから無効にできます。これを無効にすると、中解像度の nCloth シャツとパンツのシミュレーション スピードが向上します。

低解像度の nCloth シャツとズボンを無効にするには

1. シーン ビューで、低解像度の nCloth シャツを選択します。
2. アトリビュート エディタ(Attribute Editor)で、nCloth_ShirtShape タブをクリックします。
3. 有効化(Enable)をオフにします。
4. nCloth ズボン オブジェクトに対して手順 1 から 3 までを繰り返します。
5. アウトライナ(Outliner)で Character_LowRes を選択して低解像度のキャラクタと衣類を非表示にし、それからディスプレイ > 非表示 > 選択項目の非表示(Display > Hide > Hide Selection)を選択します。

## カスタムの nCloth アトリビュート プリセットを中解像度シャツとズボンに適用する

このレッスンでは、カスタムの nCloth アトリビュート プリセットを nCloth シャツとパンツの中解像度バージョン(nCloth_Shirt_MedResShape と nCloth_Pants_MedResShape)に適用します。アトリビュート プリセットを適用したら、衝突(Collisions)、ダイナミック プロパティ(Dynamic Properties)、精度設定(Quality Setting)アトリビュートを調整して、シミュレーションを微調整できます。

カスタムの nCloth アトリビュート プリセットを中解像度 nCloth に適用するには

1. シーン ビューで、nCloth 中解像度シャツを選択します。
2. アトリビュート エディタ(Attribute Editor)で、nCloth_Shirt_MedResShape タブを選択します。
3. プリセット(Presets)ボタンをクリックして押したまま、nCloth_ShirtShape プリセットを選択してから、置き換え(Replace)を選択します。
4. シーン ビューで、中解像度の nCloth ズボンを選択します。
5. アトリビュート エディタ(Attribute Editor)で、nCloth_Pants_MedResShape タブをクリックし、nCloth_PantsShape プリセットを選択してから置き換え(Replace)を選択します。
6. シーン ビューで、Shift キーを押しながら中解像度の nCloth シャツとズボンを選択し、nCache > 新規キャッシュの作成 > nObject(nCache > Create New Cache > nObject)を選択して新しいキャッシュを作成します。

   nCloth シャツとズボンのシミュレーションが 1 つの nCache ファイルに保存されます。

7. シミュレーションを再生します。

## 最終的なシミュレーションを比較する

このレッスンの最終セクションでは、最終的な nCloth シミュレーションを比較します。最初に、中解像度 nCloth シャツとズボンのオブジェクトの動作を最終的な低解像度のシャツとズボンのシミュレーションと比較します。この比較により、高解像度メッシュが低解像度メッシュと中解像度メッシュにラップされたときの動作の違いを確認できます。最後のセクションでは、nCloth の 3 つのシミュレーション バージョンすべて(オリジナルの高解像度、中解像度、低解像度メッシュ)を比較します。

中解像度と低解像度のシミュレーションを比較するには

1. アウトライナ(Outliner)で Shirt_MedRes、Pants_MedRes、Shirt_LowRes、Pants_LowRes のオブジェクトを選択して非表示にし、それからディスプレイ > 非表示 > 選択項目の非表示(Display > Hide > Hide Selection)を選択します。
2. アウトライナ(Outliner)で Pants_HighRes、Shirt_HighRes、Character_LowRes を選択し、ディスプレイ > 表示 > 選択項目の表示(Display > Show > Show Selection)を選択して、Character_HighRes グループ内のすべてのオブジェクトを表示します。

   中解像度と低解像度の nCloth メッシュは、それぞれ同じ高解像度のシャツとズボンでラップされて、シーン ビューに表示されています。

3. シーンを再生します。

タイム スライダ(Time Slider)をスクラブしながらシーンをドリー、タンブルし、各 nCloth オブジェクトの動作の違いを接近して観察できるようにします。

シミュレーションを再生すると、次のことがわかります。

- 低解像度と中解像度のシャツはどちらも同じように動作しています。
- 中解像度のズボンは低解像度のズボンよりもシミュレーションの最初のフレームで落ち着くまでの時間がかかります。
- フレーム 1040 と 1045 の間で、中解像度のズボンは低解像度のズボンよりもキャラクタの脚の上の方に上がっています。
- フレーム 1047 では、中解像度ズボンの裾の折り返しは低解像度ズボンの裾の折り返しよりも深くなっています。
- 中解像度ズボンはシミュレーションの特定の領域で、より大きくバウンスしているように見えます。

中解像度の nCloth シャツとズボンの動作が満足のいくものでない場合は、レッスン 3 と 4 で説明したのと同じアトリビュート最適化ワークフローを使用して、衝突(Collisions)、ダイナミック プロパティ(Dynamic Properties)、精度設定(Quality Settings)アトリビュートを調整します。

スケーリングのリレーション(Scaling Relation)アトリビュートを編集して、中解像度の nCloth ズボンからいくつかのバウンスを削除できます。スケーリングの関連付け(Scaling Relation)をリンク(Link)に設定すると、ベンドの抵抗(Bend Resistance)や伸長の抵抗(Stretch Resistance)などの nCloth のダイナミック アトリビュートは、メッシュのスケールと相対的に計算されます。スケーリングのリレーション(Scaling Relation)をオブジェクト(Object Space)に設定すると、ダイナミック アトリビュート計算はメッシュの解像度に基づいて自動的にスケールされます。低解像度メッシュでは、スケーリングのリレーション(Scaling Relation)をオブジェク空間(Object)に設定すると、リンク(Link)に設定した場合よりも大きく伸長する傾向があります。高解像度メッシュでは、スケーリングのリレーション(Scaling Relation)をオブジェクト空間(Object)に設定すると、スケーリングのリレーション(Scaling Relation)をリンク(Link)に設定した場合よりも小さく伸長する傾向があります。詳細については、Maya ヘルプの「nCloth ダイナミック プロパティ」を参照してください。

スケーリング リレーションを編集するには

1. アウトライナ(Outliner)で、中解像度の nCloth ズボンを選択します。
2. アトリビュート エディタ(Attribute Editor)で、nCloth_Pants_MedResShape タブを選択します。
3. ダイナミック プロパティ(Dynamic Properties)セクションで、スケーリングの関連付け(Scaling Relation)をオブジェクト空間(Object Space)に設定します。
4. シミュレーションをキャッシュして(nCache > 新規キャッシュの作成 > nObject(nCache > Create New Cache > nObject))、再生します。

### nCloth の 3 つすべてのバージョンを比較する

nCloth の 3 つすべてのバージョンを比較するには

1. 以下のことを確認してください。
   - Shirt_MedRes、Pants_MedRes、Shirt_LowRes、Pants_LowRes のオブジェクトが非表示にされている。
   - Character_HighRes グループ内のすべてのオブジェクトがシーンに表示されている。
2. ディスプレイ レイヤ エディタ(Display Layer Editor)で可視(Visible)をオンにし、シーン ビューに Reference_Character オブジェクトを表示します。
3. タイム スライダ(Time Slider)をスクラブして、アニメーションでの nCloth メッシュの動作を比較します。シーンをドリー、タンブルし、nCloth のどんなわずかな相違点でも接近して観察できるようにします。
   注:

   シミュレーションを再生またはスクラブしたときにシーン ビューで Reference_Character がアニメートされない場合は、必要に応じてリファレンス キャラクタのキャッシュをその個々のオブジェクトに再接続してください。詳細については、既存のキャッシュにオブジェクトを再接続するを参照してください。

nCloth の 3 つのバージョンを比較する場合は、動作のわずかな相違点にも気付くように、接近して見る必要があります。低解像度メッシュを最適化することで削減される合計時間のことを考えると、このワークフローは非常に精密なキャラクタの衣類のシミュレーションに有効な代替方法といえます。非常に精密なメッシュをシミュレートする代わりに低解像度の nCloth にラップすれば、シミュレート方法を気にすることなくメッシュに細部をモデリングできます。

低解像度 nCloth アトリビュートをカスタム プリセットとして保存することにより、nCloth シミュレーションの最適化に投資した時間に価値が付加されます。プリセットを中解像度 nCloth に適用すると、最小限の調整を加えるだけでよい結果のシミュレーションが得られます。